
local 小地图类 = class()

function 小地图类:初始化(文件,x,y)
 文件=文件+0
 self.小地图资源={
   [1070]="A4EA11C8"
  ,[1001]="CEBC4615"
  ,[1501]="A0CD8BBA"
  ,[1092]="AEAEAF33"
  ,[1193]="242616F7"
  ,[1110]="481296D9"
  ,[1173]="52CA91A8"
  ,[1140]="E1BC6C78"
  ,[1198]="20705313"
  ,[1002]="D48EE39D"
  ,[1142]="CA5082AD"
  ,[1135]="B23B05EC"
  ,[1116]="207DAB6D"
  ,[1146]="0C524261"
  ,[1111]="80B40884"
  ,[1512]="3436B7ED"
  ,[1131]="614B45F3"
  ,[3131]="614B45F3"
  ,[1122]="9AFBFBC8"
  ,[1513]="DE4D90EE"
  ,[1203]="F0CE9045"
  ,[1204]="C8011EF1"
  ,[1091]="2691C760"
  ,[1506]="3303D9A1"
  ,[1126]="63033A32"
  ,[1507]="C8748621"
  ,[1508]="905A7A55"
  ,[1514]="30CBF5F6"
  ,[1118]="D558F867"
  ,[1119]="A70FCC68"
  ,[1120]="F8D4D447"
  ,[1121]="49AC5547"
  ,[1211]="370E2580"
  ,[1532]="6B2B2EA7"
  ,[1174]="C4523BAE"
  ,[1177]="3EA72B1F"
  ,[1178]="FF998899"
  ,[1179]="296F3D1B"
  ,[1180]="22D0EB49"
  ,[1181]="674490C6"
  ,[1182]="D2575ED4"
  ,[1183]="EADE2B36"
  ,[1186]="53EC9A6E"
  ,[1187]="88247560"
  ,[1188]="5258A786"
  ,[1189]="0F326E75"
  ,[1190]="2FC18B92"
  ,[1191]="950C1B87"
  ,[1192]="A2C1DE00"
  ,[1127]="6AFF3A47"
  ,[1129]="15118E61"
  ,[1128]="C97CEECD"
  ,[1130]="C9E935A3"
  ,[1202]="3FCA8C5A"
  ,[1004]="B522C713"
  ,[1005]="B56504B2"
  ,[1006]="43471CC3"
  ,[1007]="DBF85229"
  ,[1008]="070872BE"
  ,[1090]="3A2C78B5"
  ,[1511]="B9E253E6"
  ,[4131]="C8011EF1"
  ,[4133]="80B40884"
  ,[1201]="78D6FD06"
  ,[1114]="6B7904C6"
  ,[1205]="CB3B68B8"
  ,[1207]="C27C1229"
  ,[1208]="5524B32A"
  ,[1150]="4B8C7EC9"
  ,[1040]="FE7FC64D"
  ,[1226]="46BE840D"
  ,[1228]="8996BDDE"
  ,[1138]="44FDBD2D"
  ,[1139]="A38F3971"
  ,[1233]="B654F9E7"
  ,[1232]="33B4D62D"
  ,[1210]="279AF873"
  ,[1213]="A680A821"
  ,[1242]="5434F561"
  ,[1235]="B496D4E2"
  ,[1041]="ADBB5864"
  ,[1042]="1DF0967E"
  ,[1218]="D20E78BF"
  ,[1221]="2611E02E"
  ,[1511]="5B4018EF"
  ,[1229]="9D88ED61"
  ,[1231]="5B4018EF"
  ,[1003]="1F812A17"
  ,[1216]="184AA512"
  ,[1920]="4B8C7E22"


}
     self.文件地址=[[Dat\smap\]]..文件..'.png'
   if  self.小地图资源[文件]~=nil then
          self.小地图={}
          self.存在=true
          self.图片1= tp.资源:载入("smap.wdf","网易WDF动画","0x"..self.小地图资源[文件],15)
          self.图片=self.图片1.精灵

          self.高度=self.图片:取高度()
          self.宽度=self.图片:取宽度()
          self.小地图.x= x/(self.宽度 - 36)
          self.小地图.y= y/(self.高度 - 32)
        self.x = 100
        self.y = 100
        self.显示x  = 0
        self.显示y  = 0
        self.中心点 =图像类("Dat/smap/小地图物件.png")
        self.小旗子 =图像类("imge/001/0044.png")
        self.小圆圈=图像类("imge/001/0045.png")
        self.关闭=按钮类.创建("imge/001/0046.png",1,1,3)
        self.是否显示 =false
        self.排序y = 3000
        self.路径组={}
        self.文字=文字类(simsun,14)
          self.文字:置颜色(黄色)
          self.npc文字=文字类(simsun,13)
        else

          self.存在=false

     end



end
function 小地图类:初始化1(文件,x,y)

     self.文件地址=[[Dat\smap\]]..文件..'.png'


   if(文件是否存在(self.文件地址))then
          self.小地图={}
          self.存在=true
          self.图片 = 图像类(self.文件地址)
          self.高度=self.图片:取高度()-32
        self.宽度=self.图片:取宽度()-36
        self.小地图.x=(x/self.宽度+0.5)
        self.小地图.y=(y/self.高度+1)
        --self.x = math.floor((800-self.宽度)/2)
      --  self.y = math.floor((600-self.高度)/2)
        self.x = 32 + 18
        self.y = 86 + 16
        self.显示x  = 0
        self.显示y  = 0
        self.中心点 =图像类("Dat/smap/小地图物件.png")
        self.小旗子 =图像类("imge/001/0044.png")
        self.小圆圈=图像类("imge/001/0045.png")
        self.是否显示 =false
        self.排序y = 3000
        self.路径组={}
        self.文字=文字类(simsun,14)
          self.文字:置颜色(黄色)
          self.npc文字=文字类(simsun,13)
          self.npc文字:置颜色(绿色)


        else

          self.存在=false

     end



end


function 小地图类:更新()
  if self.关闭~=nil then
     self.关闭:更新(dt)

  end
  if(self.存在)then

      if(引擎.按键按下(键盘符号.tab))then

          self.是否显示=逻辑改变(self.是否显示)

      end

     end

  if self.是否显示 and self.传送圈动画 then
      self.传送圈动画:更新()
  end

  if self.关闭~=nil then
    if self.关闭:取是否单击() then
      self.是否显示=false
       return false

     end
   end

  if 引擎.鼠标弹起(1) and self:界面重叠() then self.是否显示=false end

end
function 小地图类:界面重叠()

 if self.是否显示 and self.图片:是否选中(鼠标.x,鼠标.y)  then

     return true

    else

     return false


     end




 end


function 小地图类:显示()

 if self.是否显示 then
    self.图片:显示(self.x,self.y)
    self.显示x =math.floor(tp.屏幕.主角.xy.x/ self.小地图.x)
    self.显示y =math.floor(tp.屏幕.主角.xy.y/ self.小地图.y)
    self.关闭:显示(self.x+self.宽度-16,self.y+self.高度-308)
    if self.图片:是否选中(鼠标.x,鼠标.y) and 鼠标.x>self.x+18 and 鼠标.y>self.y+16  then
       信息提示:显示(2,6,1,鼠标.x-20,鼠标.y-22)
       self.文字:显示(鼠标.x-12,鼠标.y-18 ,
      string.format("%d,%d", math.floor(math.floor(( 鼠标.x - self.x ) * self.小地图.x)/20)  ,math.floor(math.floor(( 鼠标.y -self.y)*self.小地图.y)/20 )))

     end

      --add 2019/06/19 288FC5D3
    local w, h = tp.地图.宽度,tp.地图.高度
    local 传送数据 = 传送圈类:取传送数据()

    if self.传送圈动画 == nil then
      self.传送圈动画 = tp.资源:载入("JM.FT","网易WDF动画",0x558897FF)
    end

 local 传送数据 = 传送圈类:取传送数据()
    for i = 1, #传送数据 do
      local x = 传送数据[i].所在x / w * (self.宽度 - 36)
      local y = 传送数据[i].所在y / h * (self.高度 - 32)
    self.传送圈动画:显示(self.x + 18 + x,self.y + 14 + y)


    end


     self.中心点:显示(self.x+self.显示x+12,self.y +self.显示y+10)
     self.间隔=0
       self.路径组=tp.屏幕.主角.路径组
     if self.路径组==nil or self.路径组==nil  then self.路径组={} end
     for n=1,#self.路径组-1 do

          --引擎.画线(self.路径组[n+1].x*20/self.小地图.x+self.x,self.路径组[n+1].y*20/self.小地图.y+self.y,self.路径组[n+2].x*20/self.小地图.x+self.x,self.路径组[n+2].y*20/self.小地图.y+self.y)
          self.间隔=self.间隔+1

      if(self.间隔==10)then
              self.小圆圈:显示(self.路径组[n+1].x*20/self.小地图.x+self.x+15,self.路径组[n+1].y*20/self.小地图.y+self.y+17)
              self.间隔=0
          end


        end
        if(#self.路径组>0)then

           self.小旗子:显示(self.路径组[#self.路径组].x*20/self.小地图.x+self.x+15,self.路径组[#self.路径组].y*20/self.小地图.y+self.y - 5)
          end
         self.npc序列={}
         if tp.地图.npc~=nil then

             for n=1,#tp.地图.npc do

                self.显示x=0
                for i=1,#self.npc序列 do

                 if math.abs(tp.地图.npc[n].y-self.npc序列[i])<=20 then

                   self.显示x=self.显示x+20


                   end


                  end
                self.npc序列[#self.npc序列+1]=tp.地图.npc[n].y
               -- print(self.显示x)
                -- self.npc文字:置颜色(绿色):显示(self.x + tp.地图.npc[n].x / self.小地图.x-self.npc文字:取宽度()/2,self.y+tp.地图.npc[n].y/self.小地图.y-10,tp.地图.npc[n].名称)
                self.npc文字:置颜色(绿色):显示(
                 self.x + tp.地图.npc[n].x / self.小地图.x - self.npc文字:取宽度() / 2 - 18,
                 self.y + tp.地图.npc[n].y / self.小地图.y - self.npc文字:取宽度() / 2,
                  tp.地图.npc[n].名称)


             end


             end

     end


  end

function 小地图类:显示1()

 if self.是否显示 then
      self.图片:显示(self.x,self.y)
      self.显示x =math.floor(tp.屏幕.主角.xy.x/ self.小地图.x)
    self.显示y =math.floor(tp.屏幕.主角.xy.y/ self.小地图.y)

    if self.图片:取包围盒():检查点(鼠标.x,鼠标.y) then
       界面.提示:显示(2,6,1,鼠标.x-20,鼠标.y-22)
       self.文字:显示(鼠标.x-12,鼠标.y-18 ,
      string.format("%d,%d", math.floor(math.floor(( 鼠标.x - self.x ) * self.小地图.x)/20)  ,math.floor(math.floor(( 鼠标.y -self.y)*self.小地图.y)/20 )))

   end



    if(self.显示x < 0 )then self.显示x = 0 end
      if(self.显示x > 556 )then self.显示x = 556 end

      if(self.显示y < 0 )then self.显示y = 0 end
      if(self.显示y > 276 )then self.显示y = 276 end

     self.中心点:显示(self.x   +self.显示x ,self.y +self.显示y)
     self.间隔=0
       --self.路径组=tp.屏幕.主角.路径组[1]
     for n=1,#self.路径组-1 do

          self.间隔=self.间隔+1

      if(self.间隔==10)then
              self.小圆圈:显示(self.路径组[n+1].x*20/self.小地图.x+self.x,self.路径组[n+1].y*20/self.小地图.y+self.y)
              self.间隔=0
          end


        end
        if(#self.路径组>0)then

           self.小旗子:显示(self.路径组[#self.路径组].x*20/self.小地图.x+self.x,self.路径组[#self.路径组].y*20/self.小地图.y+self.y)
          end



     end


  end

return 小地图类